Call distribution

ABSTRACT

A call distribution system, suitable for use in a network supporting a telemarketing call center, maintains call counts at a global data server and at a number of transaction servers which are connected in common to the global data server. A choice is made of either the global count or the local count to be used in addressing a distribution map which determines the destination for a particular call. The distribution map may be a minimum error map which minimizes the deviation from a planned distribution ratio wherever a call sequence is terminated.

BACKGROUND TO THE INVENTION

1. Field of the Invention

The present invention relates to call distribution in a communicationsnetwork, and in particular to a system designed to supporttelemarketing.

2. Description of the Related Art

Telemarketing services involve, for example, a retailer operating a callanswering centre in which a number of call answering agents take callsfrom customers. Large call answering centres may be split over severalsites and may employ some hundreds of call answering agents. Typically,customers dial a single number, which may be an 0800 number, and eachcall is automatically directed within the network to an appropriate oneof the sites, and subsequently to one of the call answering agentswithin the site. The system which is responsible for distributing thecalls between different sites may use a call plan. This comprises adecision tree which is pre-programmed with criteria to be used inselecting a destination. For example, one criterion might be the time ofday at which the call is made, with out-of-hours calls all beingdirected to one particular site. Another important criterion is theratio of calls directed to different sites. Call plans may includeproportional call distribution (PCD) nodes arranged to distribute callsin a given ratio. In order to ensure the most effective use of theavailable call answering agents, the telemarketing operator may requirethe network to distribute calls between sites in a specific ratio whichis chosen to match the capacity of sites. For example, where thetelemarketing operation is split between three sites with 30, 40 and 50agents respectively, then the network will be required to distributecalls between the sites in the ratio 3:4:5. It is important that thiscall ratio should be maintained as accurately as possibly to ensure goodoccupancy at the call answering centres.

SUMMARY OF THE INVENTION

According to a first aspect of the present invention, there is provideda call distribution system suitable for use in a communications network,comprising:

a) a data server including

a global call counter which is incremented in response to the arrival ofsuccessive calls;

b) a plurality of call transaction processors connected in common to thedata server, each call transaction processor including

a local call counter, and

a call distribution map which is addressed using a call counter value todetermine a call destination;

c) a controller which is responsive to the traffic rate and whichdetermines, in dependence upon the traffic rate, whether a routingdecision for a new call is made using the global call counter at thedata server or is made using a local call counter.

This first aspect of the invention provides a platform which is able toimplement a proportional call distribution (PCD) plan efficiently andaccurately under widely varying traffic conditions. The platformcombines distributed call processing by a number of call transactionprocessors with the use of a global data server which maintains a countof calls received for a given node across all the transaction processorsin the platform. At low call rates, the routing decision for each newcall is made by using the value of the global counter to address adistribution map. At higher call rates a local counter is used. Thisprovides a high degree of control over call distribution, without theimposition of a bottleneck which might limit the capacity of the system.

Preferably when a routing decision is made using the global counter, anupdated value of the global counter is returned from the data server toa call transaction processor, and a call destination is determined byaddressing using the updated value of the global counter thedistribution map located at the transaction processor.

In the preferred implementation of the invention, distribution maps areheld only in the transaction processors, and all the distribution mapsfor a given PCD node are identical (that is to say, they are calculatedfrom the same data). Although alternatively a distribution map may belocated in the data server, and return destination number from dataserver to transaction processor, this requires communication of PCD nodedistribution fractions onto the data server. If the data server returnsa simple count to the transaction processor, there is then no need fornode distribution fractions to be held by the data server.

The distribution map may be a one-dimensional array listing differentcall destinations. The destinations are then allocated to incoming callsin the sequence determined by their order in the array. However, whilethe use of a global counter makes it possible to maintain the desiredcall distribution ratios with great accuracy, it also represents apotential bottleneck which might limit the ability of the platform tohandle high call rates. The invention overcomes this potentiallimitation by providing each transaction server with an associated callrate detection mechanism. This may use, for example, a leaky bucketalgorithm. Then once the call rate reaches a certain threshold, somecall are withheld from the global counter, and instead are used toincrement local counters in each of the transaction processors. It isthen the local counter value which is used to address a localdistribution map in the transaction processor in order to make a routingdecision for a call.

Preferably each controller is programmed with a different respectivecall rate threshold.

The inventors have found that the performance of the platform can besignificantly enhanced by using different call rate thresholds todetermine the level at which the transaction processors begin to makeuse of local counters. The use of different thresholds for the onset oflocal processing eliminates the possibility of the local counters for agiven PCD node, in the different local transaction processors, operatingcoherently. It is desirable to eliminate coherence as far as possible,since it tends otherwise to produce bursts of traffic at somedestinations.

According to a second aspect of the present invention, there is provideda call distribution system suitable for use in a communications network,the system comprising

a call counter which is incremented in response to the arrival ofsuccessive calls;

a distribution map comprising a list of call destination identities,each identity occurring in the said distribution map with a frequencycorresponding to a predetermined ratio of calls selected for thecorresponding destination;

a call routing processor which is arranged to address the distributionmap in dependence upon a current value in the call counter and to assigna call destination to an incoming call accordingly.

Preferably the distribution map is a minimum error map in which thesequence of the destination identities in the map is such that if a callsequence is terminated at any point in the map the deviation of theproportion of call directed to different destinations from apredetermined target ratio is minimised. It is found that the use of aminimum error distribution map reduces the bunching of calls toparticular destinations, and further improves the call statistics.

According to a second aspect of the present invention, there is provideda method of distributing calls in a communications system comprising;

a) maintaining a global count of the calls for a respective calldistribution node;

b) maintaining locally at a call transaction processor a local count ofthe calls for the respective call distribution node processed by thesaid call transaction processor;

c) selecting either a value of the global count or a value of the localcount depending on call traffic levels;

d) addressing a call distribution map using the value selected instep(c) and determining thereby the destination to which a call isdirected.

In a typical implementation of the invention, there are a plurality oftransaction processors, and a different number of PCD nodes. There maybe several PCD nodes per call plan, many call plans per customer, andmany customers handled by a single call distribution system. Each activePCD node has a global counter at the global data server (GDS) and alocal counter at each of the plurality of transaction processors. One orother of the global and local counters is used to address thedistribution map for a given PCD node.

The present invention also encompasses a communications networkincluding a call distribution system in accordance with any of thepreceding aspects of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

Systems embodying the present invention will now be described in futuredetail, by way of example only, with reference to the accompanyingdrawings in which:

FIG. 1 is a schematic of a network embodying the present invention;

FIG. 2 is a schematic of the service control point of the network ofFIG. 1;

FIG. 3 is a diagram showing part of a call plan;

FIG. 4 is a flow diagram;

FIG. 5 is a diagram showing in future detail the service control pointof FIG. 2.

DESCRIPTION OF EXAMPLES

A telecommunications network which uses an IN (Intelligent Network)architecture includes a service control point 1, which is also termedherein the Network Intelligence Platform (NIP). The service controlpoint 1 is connected to trunk digital main switching units (DMSU's) 2 ,3and to digital local exchanges (DLE's) 4,5. Both the DMSU's and theDLE's function as service switching points (SSP's). At certain pointsduring the progress of a call, the SSP's transfer control of the call tothe service control point. The service control point carries outfunctions such as number translation and provides a gateway toadditional resources such as a voice messaging platform. In the presentexample, the service control point 1 is arranged to use a call plan todirect calls made to an 0800 number to one of a plurality of answeringcentres 7, 8, 9 at different sites.

FIG. 2 shows the architecture of the service control point in thisexample. It includes a communications server 21 which communicates withthe service switching points via an SS7 signalling channel. Call relatedsignalling which is received by the communications server 21 is passedto one of a number of transaction servers 22. The transaction servers 21are connected in common to a global data server 23 which, in thisexample, collects call statistics and also, as will be furtherdescribed, maintains a global counter 231. Each transaction serverincludes a local counter 221 and a local copy 222 of a distribution mapfor a given proportional call distribution (PCD) node.

The global data server and the transaction servers together performnumber translation for incoming calls which are made to the 0800 numberof a call answering centre. A number is returned to the originatingexchange as the destination number. This number is determined using acall plan. FIG. 3 shows part of a typical call plan. This includes atime-dependent node 31 which routes the call depending on the time ofday. When calls are made outside office hours, then the destinationnumber is chosen to be that of a single answering centre site whichoffers a round-the-clock operation. The other branch from thetime-dependent node goes to a proportional call distribution (PCD) node.This splits calls between 3 terminating nodes, labelled A-C. Eachterminating node is associated with a particular answering centre siteand returns a corresponding destination number. The PCD node is arrangedto split calls between the different terminating nodes in a specifiedratio. In the present example the ratio A:B:C is 3:4:1. The distributionmaps in the global server and the transaction servers are selected toensure that calls are distributed in the specified ratio. In thisexample the map is a one-dimensional array: (A,B,C,B,A,B,A,B). Thedifferent destinations occur in this map with a frequency which ismatched to the desired ratios. Also, this distribution is selected sothat if the sequence is terminated at any point the cumulative error bycomparison with the desired ratios is minimised.

Consider a 3-branch node with distribution fractions ⅜ to A, ½ to B, ⅛to C. Determine a distribution array of length 8 (the lowest commondenominator) as follows: the first element of the array is set to thedestination with the highest distribution fraction, here B. In use, the1st, 9th, 17th, etc calls will go to destination B. Now determine thebest destination for the second call as follows: the actual distributionof the single call distributed so far is {fraction (0/1)} to A,{fraction (1/1)} to B, and {fraction (0/1)} to C. The distributionfractions should be made as close as possible to ⅜, {fraction (4/8)}, ⅛respectively. If the second call were sent to A, the actual distributionfractions after the second call would be ½, ½, {fraction (0/2)}respectively. If the second call were sent to B, the fractions would be{fraction (0/2)}, {fraction (2/2)}, {fraction (0/2)} respectively. Ifthe second call were sent to C, the fractions would be {fraction (0/2)},{fraction (1/2)}, {fraction (1/2)} respectively. Summing the moduli ofthe errors for the three possible destinations of the second call gives:

|(½−⅜)|+|(½−½)|+|({fraction (0/2)}−⅛)|={fraction (2/8)} if the call goesto A;

|({fraction (0/2)}−⅜)|+|({fraction (2/2)}−½)|+|({fraction(0/2)}−⅛)|={fraction (8/8)} if the call goes to B;

|({fraction (0/2)}−⅜)|+|(½−½)|+|(½−⅛)|={fraction (6/8)} if the call goesto C.

Hence the optimum destination for the second call (the destination whichminimises the distribution error as far as possible) is A. Continuationof this process for the 3rd, 4th, . . . 8th call gives a completedistribution map B, A, . . . .

In operation, the distribution map is addressed using the value in thecall counter, for example at the global data server. This counter isincremented, modulo the length of the map, each time a new call isreceived. Thus for the first call the first value in the map, that is A,is selected as the terminating node, and the call is routed to thecorresponding call answering site. For the next call, the counter isincremented to a value ‘2’ and the second value in the map, B,determines the terminating node, and so on. On receiving the eighth callthe counter, which is operating modulo 7, is reset to a value of ‘1’.

Each of the transaction servers 22 includes a call rate detector. Thismay use a leaky bucket algorithm as described in the present applicant'sInternational Patent Application PCT/GB 94/02512. The leaky bucketalgorithm uses a counter which is decremented regularly at a fixed rate,the leak rate. The bucket is assigned a predetermined fixed capacity. Adrip is added to the bucket, that is to say the counter is incremented,each time an initial message is received for a new call by therespective transaction server and the call is accepted. If the call rateexceeds the leak rate, then the bucket fills until a threshold valuecorresponding to its maximum capacity is reached. Any further calls thenoverflow the bucket, until the next leak decrements the counter.

For each call which fits into the bucket, the transaction server passesa request for processing to the global data server. The request includesthe identity of the relevant PCD node and the address of the requestingtransaction processor, so that the GDS can address its reply correctly.

In response to such a request the global counter is incremented, and itsnew value is returned to the requesting transaction server. Thetransaction server uses the received counter value to address its localdistribution map, and hence determines the destination number for thecall. The transaction server in turn passes the destination number tothe originating SSP which then routes the call to the selected answeringcentre site.

When a call overflows the bucket, then it is handled locally at thetransaction server. The transaction server maintains a local counter foreach PCD node. When a new overflow call is received, then the localcounter is incremented, and a local distribution map is addressed todetermine the relevant terminating node and the correspondingdestination number.

FIG. 4 is a flow diagram illustrating the process outlined above. In theinitial state, S1, the NIP is waiting to receive signalling for a newcall. In step s2 the initial address message (IAM) for a new call isreceived. In step s3 the new call triggers operation of the leaky bucketalgorithm. At step s4 the transaction server makes a decision on thefurther processing of the call depending on whether the call overflowsthe leaky bucket. If it does overflow, then in step s5 the local counteris incremented and in step s6 a local copy of the distribution map isaddressed. If the call does not overflow the leaky bucket then in steps7 the transaction server sends a request for processing to the globaldata server and in step s8 the global counter is incremented and theupdated value of the global count is returned to the requestingtransaction server. In step s9 the distribution map is addressed. Instep s10 the terminating node selected by addressing either locally orglobally the distribution map is used to determine the appropriatedestination number, which destination number is then returned from thetransaction server to the originating exchange.

Analysis by the inventors has shown that if each transaction server usesthe same leak rate for the leaky bucket algorithm, then the counters inthe different transaction servers sometimes become coherent as a resultof statistical fluctuations in call arrivals, that is to say they allpoint to approximately the same position in the distribution map. Thiscauses bursts and lulls in the call rates to individual destinationsites. It can take several call holding times before such coherence isbroken up by statistical fluctuations in the number of calls handled byeach transaction server. The burstiness in the call rates isparticularly marked for sites which receive a relatively small fraction,e.g. a tenth, of the traffic through a particular PCD node. In this casean individual destination may receive a burst of calls, which fill upthe available lines. Hence some of the calls in the burst encountertermination-busy. The burst will be followed by a lull in whichdisconnecting calls are not replaced by new offered calls. The result isa reduction in average destination occupancy.

The service control point in the present example overcomes theseproblems by using a different value for the leak rate in the leakybucket algorithm in different transaction servers. Then, when traffic ishigh enough to cause overflow from GDS to local control, the rate ofcalls handled locally at each transaction server will differ by thedifference in the leaky-bucket rates. Local pointers will then move atdifferent rates through the local distribution maps and any coherencewill be short-lived. For example if the leak rates average to 1.0 cps(calls per second) per transaction server, but (at a given site) the 4transaction servers have actual leak rates of ½, ⅚, {fraction (7/6)},{fraction (3/2)}, then if the traffic rate per transaction server isR={fraction (3/2)} the rates of calls overflowing, to be handled locallyat the transaction servers, will be 1, ⅔, ⅓, 0 cps respectively. (TheGDS will handle ½+⅚+{fraction (7/6)}+{fraction (3/2)} cps, and thedistribution of these calls will be perfect). Then if all local countersstart coherent and the smallest distribution fraction at the node is{fraction (1/10)}, coherence will be removed (local counters will beuniformly spread through the distribution map) after {fraction(10/1)}=10 s. In this example the counters will “re-cohere” e.g. after10/(⅓)=30 s but this happens only as a result of the choice of a uniformtraffic rate exactly equal to the highest leak rate and in reality thisis unlikely to be sustained. Over this period the “fastest” localdistribution receives 30 calls and would probably have a standarddeviation of 6 calls (overflow traffic is burstier than total traffic),so statistical fluctuations would “wash out” much of the coherence overthis longer time period.

In this way, when the traffic is high enough to cause overflow from theglobal data server to local control, the rate of call handled locally ateach transaction server differs by the difference in the leaky bucketrates. Local pointers then move at different rates through the localdistribution maps and any coherence is very short lived.

FIG. 5 shows in further detail the architecture of the SCP describedabove with reference to FIG. 2. A service management server is connectedvia an FDDI optical fibre LAN to an overload control server (OCS) and totransaction servers (TS). The transaction servers implement advancedservice control functions such as proportional call distribution featuredescribed above. The OCS and transaction servers are connected via asecond FDDI LAN to communications servers (TS) which are connected tothe SS7 (ITU Signalling System no. 7) signalling network. The globaldata server (GDS) is also connected to this second LAN. Each of theservers, that is the GDS, the OCS, the transaction servers andcommunication servers may be implemented as a respective computerworkstation using, for example a Sun SPARC or a Digital (Compaq) ALPHAmicroprocessor. Elements such as the global call counter, the local callcounters and the controller are then implemented using the memory,registers and processors of these servers under the control ofappropriate software modules.

What is claimed is:
 1. A call distribution system suitable for use in acommunications network, the system comprising: a data server including aglobal call counter which is incremented in response to the arrival ofsuccessive calls received by a plurality of call transaction processorsconnected in common to the data server, each call transaction processorincluding a local call counter; and a call distribution map which isaddressed using a call counter value to determine a call destination;and a controller which is responsive to the traffic rate and whichdetermines for each call transaction processor, in dependence upon thetraffic rate received by said call transaction processor, whether arouting decision for a new call is made using a call counter valuegenerated by the global call counter or a call counter value generatedby one of the plurality of local call counters.
 2. A call distributionsystem suitable for use in a communications network, comprising: a) adata server including a global call counter which is incremented inresponse to the arrival of successive calls; b) a plurality of calltransaction processors connected in common to the data server, each calltransaction processor including: a local call counter, and a calldistribution map which is addressed using a call counter value todetermine a call destination; and c) a controller which is responsive tothe traffic rate and which determines, in dependence upon the trafficrate, whether a routing decision for a new call is made using the globalcall counter at the data server or is made using a local call counter;wherein the data server is arranged to communicate an updated value ofthe global call counter to a call transaction processor, and thetransaction processor is arranged to use the updated value communicatedby the data server to address a call distribution map held locally atthe transaction processor.
 3. A call distribution system suitable foruse in a communications network, the system comprising a call counterwhich is arranged to be incremented in response to the arrival ofsuccessive calls at a call transaction processor; a distribution mapcomprising a list of call destination identities, each identityoccurring in the distribution map with a frequency corresponding to apredetermined ratio of calls selected for the corresponding destination;a call routing processor which is arranged to address the distributionmap in dependence upon a current value in the call counter and to assigna call destination to an incoming call accordingly, wherein the callcounter is updated by a call transaction processor arranged to use anupdated counter value communicated by a data server to enable the callrouting processor to address a call distribution map held locally at thecall transaction processor.
 4. A call distribution system suitable foruse in a communications network, comprising: a) a data server includinga global call counter which is incremented in response to the arrival ofsuccessive calls; b) a plurality of call transaction processorsconnected in common to the data server, each call transaction processorincluding: a local call counter, and a call distribution map which isaddressed using a call counter value to determine a call destination;and c) a controller which is responsive to the traffic rate and whichdetermines, in dependence upon the traffic rate, whether a routingdecision for a new call is made using the global call counter at thedata server or is made using a local call counter; wherein thedistribution map is a minimum error map in which a sequence ofdestination identities in the map is such that if a call sequence isterminated at any point in the map a deviation of a proportion of callsdirected to different destinations from a predetermined target ratio isminimised.
 5. A system according to claim 3 including a call countersassociated with the call transaction processor.
 6. A system according toclaim 1, in which each of the plurality of call transaction processorsincludes a respective traffic rate detector, and the traffic ratedetectors at different respective transaction processors are programmedwith different respective rate thresholds.
 7. A method of distributingcalls in a communications system comprising: a) maintaining a globalcount of the calls received by a plurality of call transactionprocessors for a respective call distribution node; b) maintaininglocally at each of the plurality of call transaction processors a localcount of the calls for the respective call distribution node processedby the call transaction processor; c) selecting, for each of saidplurality of call transaction processors, either a value of the globalcount communicated to the call transaction processor or a value of thelocal count depending on call traffic levels at said call transactionprocessor; and d) addressing a call distribution map using the valueselected in step (c) and determining thereby the destination to which acall is directed; wherein the selection of either the value of theglobal count or the value of the local count depends on a rate ofincoming calls for said transaction processor.
 8. A method according toclaim 7, including programming a plurality of traffic rate detectorswith different rate thresholds for different respective transactionprocessors, and at a call transaction processor selecting a value of thelocal count in step (c) whenever the respective rate threshold isexceeded.
 9. A method of distributing calls in a communications systemcomprising: a) in response to a new call, incrementing a call counter;b) addressing, using a value of the call counter, a distribution map,which distribution map comprises a list of call destination identities,each identity occurring in the distribution map with a frequencycorresponding to a predetermined ratio of calls selected for thecorresponding destination; and c) directing a call to a destinationselected in step (b); wherein the distribution map is a minimum errormap in which a sequence of destination identities in the map is suchthat if a call sequence is terminated at any point in the map adestination of a proportion of calls directed to different destinationsfrom a predetermined target ratio is minimized.
 10. A method ofdistributing calls in a communications system comprising: a) maintaininga global count of the calls for a respective call distribution node; b)maintaining locally at a call transaction processor a local count of thecalls for the respective call distribution node processed by the calltransaction processor; c) selecting either a value of the global countor a value of the local count depending on call traffic levels; d)addressing a call distribution map using the value selected in step (c)and determining thereby the destination to which a call is directed;wherein the distribution map is a minimum error map in which a sequenceof destination identities in the map is such that if a call sequence isterminated at any point in the map a deviation of a proportion of callsdirected to different destinations from a predetermined target ratio isminimized.
 11. A call distribution system as claimed in claim 1, whereinthe traffic rate at which the controller determines whether a routingdecision for a new call is made using a global call counter or a localcall counter differs for each of said plurality of call transactionprocessors.
 12. A method as claimed in claim 7, wherein said incomingcall rate determining which count is selected to address saiddistribution map differs for each of said plurality of call transactionprocessors.